home *** CD-ROM | disk | FTP | other *** search
/ MACD 5 / MACD 5.bin / workbench / dir / browser2.41 / c / basename.c < prev    next >
C/C++ Source or Header  |  1993-03-16  |  970b  |  43 lines

  1. /*
  2.  *    BaseName.c - Copyright © 1992 by Devil's child.
  3.  *
  4.  *    Created:    11 Sep 1992  18:00:25
  5.  *    Modified:    16 Mar 1993  23:03:31
  6.  *
  7.  *    Make>> sc <file>.c
  8.  *    Make>> slink <file>.o SC SD ND BATCH NOICONS TO <file>
  9.  */
  10.  
  11.  
  12. long BaseName(void)
  13. {
  14.     struct ExecBase *SysBase = *((struct ExecBase **)4L);
  15.     struct DosLibrary *DOSBase;
  16.     APTR UtilityBase;
  17.     struct RDArgs *RA;
  18.     char *Argv[] = { NULL, NULL, NULL };
  19.     UBYTE *s, *suffix;
  20.     long suflen, namelen, rc=20;
  21.  
  22.     if (DOSBase = (struct DosLibrary *)OpenLibrary("dos.library", 37)) {
  23.         UtilityBase = DOSBase->dl_UtilityBase;
  24.         if (RA = ReadArgs("Path/A,Suffix", (long *)Argv, NULL)) {
  25.             s = FilePart(Argv[0]);
  26.             if (Argv[1] && (suflen = strlen(Argv[1])) < (namelen = strlen(s))) {
  27.                 suffix = &s[namelen - suflen];
  28.                 if (!Stricmp(suffix, Argv[1]))
  29.                     *suffix = 0;
  30.             }
  31.             Printf("%s\n", s);
  32.             FreeArgs(RA);
  33.             rc = 0;
  34.         }
  35.         else
  36.             PrintFault(IoErr(), "BaseName");
  37.         CloseLibrary((struct Library *)DOSBase);
  38.     }
  39.     return rc;
  40. }
  41.  
  42.  
  43.